package com.easylinkin.linkappapi.lobar.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.easylinkin.linkappapi.common.model.RequestModel;
import com.easylinkin.linkappapi.lobar.dto.UserGateDTO;
import com.easylinkin.linkappapi.lobar.dto.app.AppUserGateDTO;
import com.easylinkin.linkappapi.lobar.entity.UserGate;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * <p>
 * 闸机表 服务类
 * </p>
 *
 * @author kanyuanfeng
 * @since 2022-04-13
 */
public interface UserGateService extends IService<UserGate> {

  IPage<UserGateDTO> queryListByPage(RequestModel<UserGateDTO> requestModel);

  /**
   * 增加
   * @param userGate
   */
  void insert(UserGate userGate);

  /**
   * 根据id编辑
   * @param userGate
   */
  void updateOne(UserGate userGate);

  /**
   * @Description: 根据条件，分页(不分页)查询月视图
   * @author kan yuanfeng
   * @date 2020/11/04 11:42
   */
  IPage<UserGateDTO> queryMonthByPage(RequestModel<UserGateDTO> requestModel)
      throws InterruptedException, ExecutionException;

  /**
   *app健康管理首页统计
   */
  AppUserGateDTO countSum(Date date);

  /**
   *app参建单位统计
   */
  List<AppUserGateDTO> getCompany(Date date);

  /**
   *app班组统计
   */
  List<AppUserGateDTO> getGroup(String companyProjectId, Date date);

  /**
   *app人员统计
   */
  List<UserGateDTO> getUser(String companyProjectId, String groupId, Date date);
}
